﻿
Option Strict On

Imports osi.root.constants
Imports osi.root.connector
Imports osi.root.formation
Imports osi.root.procedure
Imports osi.root.utils
Imports osi.service.argument
Imports osi.service.device

Public Class text_herald_idevice_pool(Of T As idevice_pool(Of text))
    Inherits text_dev_T_idevice_pool(Of command, T, herald)

    Public Sub New(ByVal f As T)
        MyBase.New(f)
    End Sub
End Class

<global_init(global_init_level.services)>
Public Class text_herald_idevice_pool
    Inherits text_dev_T_idevice_pool(Of command, herald)

    Public Sub New(ByVal f As idevice_pool(Of text))
        MyBase.New(f)
    End Sub

    Public Shared Function create(ByVal v As var, ByVal o As pointer(Of text_herald_idevice_pool)) As event_comb
        Return secondary_resolve(v,
                                 constants.text_herald_secondary_type_name,
                                 Function(i As idevice_pool(Of text)) As text_herald_idevice_pool
                                     Return New text_herald_idevice_pool(i)
                                 End Function,
                                 o)
    End Function

    Public Shared Function create(ByVal v As var, ByVal o As pointer(Of idevice_pool(Of herald))) As event_comb
        Return secondary_resolve(v,
                                 constants.text_herald_secondary_type_name,
                                 Function(i As idevice_pool(Of text)) As idevice_pool(Of herald)
                                     Return New text_herald_idevice_pool(i)
                                 End Function,
                                 o)
    End Function

    Private Shared Sub init()
        assert(device_constructor.register(Of text_herald_idevice_pool)(AddressOf create))
        assert(device_constructor.register(Of idevice_pool(Of herald))("text-herald-adapter-idevice-pool",
                                                                       AddressOf create))
    End Sub
End Class

Public Class text_herald_isync_device_pool(Of T As isync_device_pool(Of text))
    Inherits text_dev_T_isync_device_pool(Of command, T, herald)

    Public Sub New(ByVal f As T)
        MyBase.New(f)
    End Sub

    Protected NotOverridable Overrides Function from_dev_to_to_dev(ByVal i As text, ByRef o As herald) As Boolean
        Return text_herald_adapter.convert(i, o)
    End Function
End Class

<global_init(global_init_level.services)>
Public Class text_herald_isync_device_pool
    Inherits text_dev_T_isync_device_pool(Of command, herald)

    Public Sub New(ByVal f As isync_device_pool(Of text))
        MyBase.New(f)
    End Sub
    Protected NotOverridable Overrides Function from_dev_to_to_dev(ByVal i As text, ByRef o As herald) As Boolean
        Return text_herald_adapter.convert(i, o)
    End Function

    Public Shared Function create(ByVal v As var, ByVal o As pointer(Of text_herald_isync_device_pool)) As event_comb
        Return secondary_resolve(v,
                                 constants.text_herald_secondary_type_name,
                                 Function(i As isync_device_pool(Of text)) As text_herald_isync_device_pool
                                     Return New text_herald_isync_device_pool(i)
                                 End Function,
                                 o)
    End Function

    Public Shared Function create(ByVal v As var, ByVal o As pointer(Of isync_device_pool(Of herald))) As event_comb
        Return secondary_resolve(v,
                                 constants.text_herald_secondary_type_name,
                                 Function(i As isync_device_pool(Of text)) As isync_device_pool(Of herald)
                                     Return New text_herald_isync_device_pool(i)
                                 End Function,
                                 o)
    End Function

    Private Shared Sub init()
        assert(device_constructor.register(Of text_herald_isync_device_pool)(AddressOf create))
        assert(device_constructor.register(Of isync_device_pool(Of herald))("text-herald-adapter-isync-device-pool",
                                                                            AddressOf create))
    End Sub
End Class

Public Class text_herald_iasync_device_pool(Of T As iasync_device_pool(Of text))
    Inherits text_dev_T_iasync_device_pool(Of command, T, herald)

    Public Sub New(ByVal f As T)
        MyBase.New(f)
    End Sub

    Protected NotOverridable Overrides Function from_dev_to_to_dev(ByVal i As text,
                                                                   ByVal o As pointer(Of herald)) As event_comb
        Return text_herald_adapter.convert(i, o)
    End Function
End Class

<global_init(global_init_level.services)>
Public Class text_herald_iasync_device_pool
    Inherits text_dev_T_iasync_device_pool(Of command, iasync_device_pool(Of text), herald)

    Public Sub New(ByVal f As iasync_device_pool(Of text))
        MyBase.New(f)
    End Sub

    Protected NotOverridable Overrides Function from_dev_to_to_dev(ByVal i As text,
                                                                   ByVal o As pointer(Of herald)) As event_comb
        Return text_herald_adapter.convert(i, o)
    End Function

    Public Shared Function create(ByVal v As var, ByVal o As pointer(Of text_herald_iasync_device_pool)) As event_comb
        Return secondary_resolve(v,
                                 constants.text_herald_secondary_type_name,
                                 Function(i As iasync_device_pool(Of text)) As text_herald_iasync_device_pool
                                     Return New text_herald_iasync_device_pool(i)
                                 End Function,
                                 o)
    End Function

    Public Shared Function create(ByVal v As var, ByVal o As pointer(Of iasync_device_pool(Of herald))) As event_comb
        Return secondary_resolve(v,
                                 constants.text_herald_secondary_type_name,
                                 Function(i As iasync_device_pool(Of text)) As iasync_device_pool(Of herald)
                                     Return New text_herald_iasync_device_pool(i)
                                 End Function,
                                 o)
    End Function

    Private Shared Sub init()
        assert(device_constructor.register(Of text_herald_iasync_device_pool)(AddressOf create))
        assert(device_constructor.register(Of iasync_device_pool(Of herald))("text-herald-adapter-iasync-device-pool",
                                                                             AddressOf create))
    End Sub
End Class

Public Class text_herald_new_device_event_isync_device_pool(Of T As new_device_event_isync_device_pool(Of text))
    Inherits text_dev_T_new_device_event_isync_device_pool(Of command, T, herald)

    Protected NotOverridable Overrides Function from_dev_to_to_dev(ByVal i As text, ByRef o As herald) As Boolean
        Return text_herald_adapter.convert(i, o)
    End Function

    Public Sub New(ByVal f As T)
        MyBase.New(f)
    End Sub
End Class

<global_init(global_init_level.services)>
Public Class text_herald_new_device_event_isync_device_pool
    Inherits text_dev_T_new_device_event_isync_device_pool(Of command, 
                                                               new_device_event_isync_device_pool(Of text), 
                                                               herald)

    Public Sub New(ByVal f As new_device_event_isync_device_pool(Of text))
        MyBase.New(f)
    End Sub

    Protected NotOverridable Overrides Function from_dev_to_to_dev(ByVal i As text, ByRef o As herald) As Boolean
        Return text_herald_adapter.convert(i, o)
    End Function

    Public Shared Function create(ByVal v As var,
                                  ByVal o As pointer(Of text_herald_new_device_event_isync_device_pool)) As event_comb
        Return secondary_resolve(v,
                                 constants.text_herald_secondary_type_name,
                                 Function(i As new_device_event_isync_device_pool(Of text)) _
                                         As text_herald_new_device_event_isync_device_pool
                                     Return New text_herald_new_device_event_isync_device_pool(i)
                                 End Function,
                                 o)
    End Function

    Public Shared Function create(ByVal v As var,
                                  ByVal o As pointer(Of new_device_event_isync_device_pool(Of herald))) As event_comb
        Return secondary_resolve(v,
                                 constants.text_herald_secondary_type_name,
                                 Function(i As new_device_event_isync_device_pool(Of text)) _
                                         As new_device_event_isync_device_pool(Of herald)
                                     Return New text_herald_new_device_event_isync_device_pool(i)
                                 End Function,
                                 o)
    End Function

    Private Shared Sub init()
        assert(device_constructor.register(Of text_herald_new_device_event_isync_device_pool)(AddressOf create))
        assert(device_constructor.register(Of new_device_event_isync_device_pool(Of herald))(
                                                  "text-herald-adapter-new-device-event-isync-device-pool",
                                                  AddressOf create))
    End Sub
End Class
